//package opencv;
//
//import org.opencv.core.*;
//import org.opencv.highgui.Highgui;
//import org.opencv.imgproc.Imgproc;
//
//
//public class Test {
//
//    public static void main(String[] args) {
////        String path = "完整绝对路径";
//
////        System.out.println(path);
////        System.load(path);
//
//        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//        Mat mat = Mat.eye(3, 3, CvType.CV_8UC1);
//
//
//        Mat source = Highgui.imread("F:\\\\source.jpg");
//        Mat template = Highgui.imread("F:\\\\template.jpg");
//
//        System.out.println(System.getProperty("java.library.path"));
//        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//
//        int result_rows = source.rows() - template.rows() + 1;
//        int result_cols = source.cols() - template.cols() + 1;
//        Mat g_result = new Mat(result_rows, result_cols, CvType.CV_32FC1);
//        Imgproc.matchTemplate(source, template, g_result, Imgproc.TM_CCORR_NORMED); // 归一化平方差匹配法
//
//
//
//        Core.normalize(g_result, g_result, 0, 1, Core.NORM_MINMAX, -1);
//        Core.MinMaxLocResult mmlr = Core.minMaxLoc(g_result);
//
//        Point matchLocation = mmlr.maxLoc; // 此处使用maxLoc还是minLoc取决于使用的匹配算法
//        Core.rectangle(source, matchLocation,
//                new Point(matchLocation.x + template.width(), matchLocation.y + template.height()),
//                new Scalar(1, 255, 2, 100));
//
//        Highgui.imwrite("F:\\match.jpg", source);
//
//    }
//
//
//    @org.junit.Test
//    public void  match2(){
//        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
//        Mat source, template;
//        //将文件读入为OpenCV的Mat格式
//        source = Highgui.imread("F:\\judge.jpg");
//        template = Highgui.imread("F:\\5stars.jpg");
//        //创建于原图相同的大小，储存匹配度
//        Mat result = Mat.zeros(source.rows() - template.rows() + 1, source.cols() - template.cols() + 1, CvType.CV_32FC1);
//
//        System.out.println(result.total());
//        System.out.println(result.size());
////        System.out.println(result.dump());
//        //调用模板匹配方法
//        Imgproc.matchTemplate(source, template, result, Imgproc.TM_SQDIFF_NORMED);
//        //规格化
//        Core.normalize(result, result, 0, 1, Core.NORM_MINMAX, -1);
//        //获得最可能点，MinMaxLocResult是其数据格式，包括了最大、最小点的位置x、y
//        Core.MinMaxLocResult mlr = Core.minMaxLoc(result);
//        Point matchLoc = mlr.minLoc;
//        //在原图上的对应模板可能位置画一个绿色矩形
//        Core.rectangle(source, matchLoc, new Point(matchLoc.x + template.width(), matchLoc.y + template.height()), new Scalar(0, 255, 0));
//        //将结果输出到对应位置
//        Highgui.imwrite("F:\\match.jpg", source);
//    }
//
//}
